home *** CD-ROM | disk | FTP | other *** search
/ Micromanía 87 / CDMM87_2.ISO / Incoming Forces / data1.cab / Forces_Files / asc / fortress / mechs.mdl < prev    next >
Encoding:
Text File  |  2001-11-28  |  44.4 KB  |  1,703 lines

  1. //************************************************************************************
  2. //************************************************************************************
  3. //************************************************************************************
  4.  
  5.  
  6. //-----------------------earth mechs
  7. create "human mech"
  8.  position 500 on ground 100
  9.  pointing_at 100 on ground 1
  10.  label "emech_dummy"
  11.  task
  12.  
  13. //-------- emech gosubs --------
  14. comment
  15.     gosub "finish_anim"
  16.  
  17.     gosub "human_mech_stomp_1"
  18.     gosub "human_mech_stomp_2"
  19.     gosub "human_mech_stomp_3"
  20.     gosub "human_mech_stomp_4"
  21.  
  22.     gosub "emech_power_down"
  23.  
  24.     gosub "emech_left_180"
  25.     gosub "emech_right_180"
  26.     gosub "emech_left_90"       
  27.     gosub "emech_right_90"
  28.     gosub "emech_left_60"
  29.     gosub "emech_right_60"
  30.     gosub "emech_left_30"
  31.     gosub "emech_right_30"
  32.  
  33.     gosub "emech_walk_5"
  34.     gosub "emech_walk_9" 
  35.     gosub "emech_walk_33"
  36.     gosub "emech_walk_65"
  37.  
  38.     gosub "emech_prepare_walk_shoot"
  39.     gosub "emech_walk_shoot_1"
  40.     gosub "emech_walk_shoot_2"
  41.     gosub "emech_end_walk_shoot"
  42.     gosub "emech_walk_ready_to_shoot"
  43.  
  44.     gosub "emech_shoot_1"
  45.  
  46.     gosub "emech_prepare_arm_fire"
  47.     gosub "emech_arm_fire_1"
  48.     gosub "emech_arm_fire_2"
  49.     gosub "emech_end_arm_fire"
  50. endcomment
  51. //-------- emech gosubs --------
  52.  
  53.    wait_until flag 31 set
  54.    wait_until flag 31 clear
  55.  
  56. .finish_anim
  57.     do                                            
  58.         throttle 1 frames 1                    
  59.     until "current_object" finished animation  
  60.     rotate 0 0 0 frames 0
  61.     throttle 0 frames 0
  62. return
  63.  
  64. .emech_left_180
  65.     gosub "emech_left_90"
  66.     gosub "emech_left_90"
  67. return
  68.  
  69. .emech_right_180
  70.     gosub "emech_right_90"
  71.     gosub "emech_right_90"
  72. return
  73.  
  74. .emech_left_90
  75.     gosub "emech_left_60"
  76.     gosub "emech_left_30"
  77. return
  78.  
  79. .emech_right_90
  80.     gosub "emech_right_60"
  81.     gosub "emech_right_30"
  82. return
  83.  
  84. .emech_left_60
  85.     gosub "emech_left_30"
  86.     gosub "emech_left_30"
  87. return
  88.  
  89. .emech_right_60
  90.     gosub "emech_right_30"
  91.     gosub "emech_right_30"
  92. return
  93.  
  94. .emech_left_30
  95.    playanim me 0             
  96.    rotate 0 0.2 0 frames 0
  97.    throttle 1 frames 184;68
  98.    rotate 0 0 0 frames 0
  99.   gosub "finish_anim"
  100. return
  101.  
  102. .emech_right_30
  103.    playanim me 0             
  104.    rotate 0 -0.2 0 frames 0 ; all were -1/1
  105.    throttle 1 frames 184;68    ; all were frames 4
  106.    rotate 0 0 0 frames 0
  107.   gosub "finish_anim"
  108. return
  109.  
  110. .emech_left_a_bit
  111.    playanim me 0             
  112.    rotate 0 0.2 0 frames 0
  113.    throttle 1 frames 46
  114.    rotate 0 0 0 frames 0
  115.   gosub "finish_anim"
  116. return
  117.  
  118. .emech_walk_5
  119.    playanim me 0             
  120.    throttle 1 frames 112 ;walk 4 + 1/2 paces
  121.    gosub "finish_anim"
  122. return
  123.  
  124. .emech_walk_9
  125.    playanim me 0             
  126.    throttle 1 frames 225 ;walk 9 paces 
  127.     gosub "finish_anim"
  128. return
  129.  
  130. .emech_walk_33
  131.    playanim me 0             
  132.    throttle 1 frames 897 ;walk 33 paces 
  133.     gosub "finish_anim"
  134. return
  135.  
  136. .emech_walk_65
  137.    playanim me 0             
  138.    throttle 1 frames 1793 ;walk 65 paces 
  139.     gosub "finish_anim"
  140. return
  141.  
  142. .emech_power_down
  143.    playanim me 1
  144.    throttle 0 frames 90
  145. return
  146.  
  147. .emech_prepare_walk_shoot
  148.    playanim me 2             
  149.     gosub "finish_anim"
  150. return
  151.  
  152. .emech_walk_shoot_1
  153.     playanim me 3
  154.     throttle 1 frames 15
  155.     fire_main
  156.     throttle 1 frames 15
  157.     fire_main
  158.     gosub "finish_anim"
  159. return
  160.  
  161. .emech_walk_no_shoot_1
  162.     playanim me 3
  163.     throttle 1 frames 30
  164.     gosub "finish_anim"
  165. return
  166.  
  167. .emech_walk_shoot_2
  168.     playanim me 3
  169.     throttle 1 frames 10
  170.     fire_main
  171.     throttle 1 frames 10
  172.     fire_main
  173.     throttle 1 frames 10
  174.     fire_main
  175.     throttle 1 frames 10
  176.     fire_main
  177.     gosub "finish_anim"
  178. return
  179.  
  180. .emech_walk_no_shoot_2
  181.     playanim me 3
  182.     throttle 1 frames 40
  183.     gosub "finish_anim"
  184. return
  185.  
  186. .emech_end_walk_shoot
  187.     playanim me 11            ; emech gun ports and arms down            
  188.     gosub "finish_anim"
  189.     playanim me 0
  190.     gosub "finish_anim"
  191. return
  192.  
  193. .emech_walk_ready_to_shoot
  194.    playanim me 3            ;walk n fire ready (walk with gun ports ready)
  195.    throttle 1 frames 56
  196. return
  197.  
  198. .emech_shoot_1
  199.     fire_main
  200.     pause 10
  201.     fire_main
  202.     pause 10
  203.     fire_main
  204.     pause 10
  205.     fire_main
  206.     pause 10
  207.     fire_main
  208.     pause 10
  209.     fire_main
  210.     pause 10
  211.     fire_main
  212.     pause 10
  213.     fire_main
  214.     pause 10
  215. return
  216.  
  217. .emech_prepare_arm_fire
  218.    playanim me 6           ;stop2ready
  219.    throttle 0 frames 44     
  220.    playanim me 7           ;ready2aim
  221.    throttle 0 frames 51     
  222. return
  223.  
  224. .emech_end_arm_fire
  225.    playanim me 9           ;aim2ready
  226.    throttle 0 frames 29     
  227.    playanim me 10          ;ready2walk
  228.    throttle 0 frames 26     
  229. return
  230.  
  231. .emech_arm_fire_1
  232.    playanim me 8           ;armfire
  233.    fire_secondary
  234.    throttle 0 frames 18
  235.    playanim me 8           ;armfire
  236.    fire_secondary
  237.    throttle 0 frames 18
  238. return
  239.  
  240. .emech_arm_no_fire_1
  241.    putanim me 8 0           ;no arm fire - prep 1
  242.    throttle 0 frames 36
  243. return
  244.  
  245. .emech_arm_fire_2
  246.    playanim me 8           ;armfire
  247.    fire_secondary
  248.    throttle 0 frames 20
  249.    playanim me 8           ;armfire
  250.    fire_secondary
  251.    throttle 0 frames 20
  252.    playanim me 8           ;armfire
  253.    fire_secondary
  254.    throttle 0 frames 20
  255.    playanim me 8           ;armfire
  256.    fire_secondary
  257.    throttle 0 frames 20
  258.    playanim me 8           ;armfire
  259.    fire_secondary
  260.    throttle 0 frames 20
  261. return
  262.  
  263. .emech_arm_no_fire_2
  264.    putanim me 8 0           ;no arm fire - prepped
  265.    throttle 0 frames 100
  266. return
  267.  
  268. //************************************************************************************
  269. .human_mech_stomp_1
  270.  
  271. procedure "mech_sounds1"
  272.     label "xreference_object"
  273.     do
  274.         wait_until distance_between "xreference_object"."lfoot112" and 0 on ground 0 local to "xreference_object"."lfoot112" > 10
  275.         wait_until distance_between "xreference_object"."lfoot112" and 0 on ground 0 local to "xreference_object"."lfoot112" < 10
  276.         setcurrentobject "xreference_object"."lfoot112"
  277.         dosound trig_id 10 "current_object" "22 HANGER SCENE\22 Craft_Contact_Deck\Craft_Contact_Deck.1" ;"22 MECH_ROBOTS\22 Mech Walk 1\Mech1_Walk_Lt_Down"
  278.         ; trigon "current_object" 10
  279.         if distance_between    "xreference_object" and "camera" < 10000
  280.          { 
  281.           judder time 5 yawmax 0.00003 pitchmax 0.00004        
  282.          }
  283.         emitsmoke -100 -30 0 frames 30 grow 4 size 75 rate 0 color 50 50 50 alpha 10 vel 0 2 0 rand 13 2 13
  284.         pause 7
  285.         set_operate "xreference_object"."lfoot112" "null"
  286.  
  287.     
  288.         wait_until distance_between "xreference_object"."rfoot128" and 0 on ground 0 local to "xreference_object"."rfoot128" > 10
  289.         wait_until distance_between "xreference_object"."rfoot128" and 0 on ground 0 local to "xreference_object"."rfoot128" < 10
  290.         setcurrentobject "xreference_object"."rfoot128"
  291.         dosound trig_id 11 "current_object" "22 HANGER SCENE\22 Craft_Contact_Deck\Craft_Contact_Deck.1"  ;"22 MECH_ROBOTS\22 Mech Walk 1\Mech1_Walk_Rt_Down"
  292.         ; trigon "current_object" 11
  293.         if distance_between    "xreference_object" and "camera" < 10000
  294.          { 
  295.           judder time 5 yawmax 0.00003 pitchmax 0.00004        
  296.          }
  297.         emitsmoke 100 -30 0 frames 30 grow 4 size 75 rate 0 color 50 50 50 alpha 10 vel 0 2 0 rand 13 2 13
  298.         pause 7
  299.         set_operate "xreference_object"."rfoot128" "null"
  300.     forever
  301. end_procedure
  302.  
  303. return
  304.  
  305. //************************************************************************************
  306. .human_mech_stomp_2
  307.  
  308. procedure "mech_sounds2"
  309.     label "thingy1"
  310.     do
  311.         wait_until distance_between "thingy1"."lfoot112" and 0 on ground 0 local to "thingy1"."lfoot112" > 10
  312.         wait_until distance_between "thingy1"."lfoot112" and 0 on ground 0 local to "thingy1"."lfoot112" < 10
  313.         setcurrentobject "thingy1"."lfoot112"
  314.         dosound trig_id 12 "current_object" "22 HANGER SCENE\22 Craft_Contact_Deck\Craft_Contact_Deck.1" ;"22 MECH_ROBOTS\22 Mech Walk 1\Mech1_Walk_Lt_Down"
  315.         ; trigon "current_object" 12
  316.         if distance_between    "thingy1" and "camera" < 10000
  317.          { 
  318.           judder time 5 yawmax 0.00003 pitchmax 0.00004        
  319.          }
  320.         emitsmoke -100 -30 0 frames 30 grow 4 size 75 rate 0 color 50 50 50 alpha 10 vel 0 2 0 rand 13 2 13
  321.         pause 7
  322.         set_operate "thingy1"."lfoot112" "null"
  323.  
  324.     
  325.         wait_until distance_between "thingy1"."rfoot128" and 0 on ground 0 local to "thingy1"."rfoot128" > 10
  326.         wait_until distance_between "thingy1"."rfoot128" and 0 on ground 0 local to "thingy1"."rfoot128" < 10
  327.         setcurrentobject "thingy1"."rfoot128"
  328.         dosound trig_id 13 "current_object" "22 HANGER SCENE\22 Craft_Contact_Deck\Craft_Contact_Deck.1"  ;"22 MECH_ROBOTS\22 Mech Walk 1\Mech1_Walk_Rt_Down"
  329.         ; trigon "current_object" 13
  330.         if distance_between    "thingy1" and "camera" < 10000
  331.          { 
  332.           judder time 5 yawmax 0.00003 pitchmax 0.00004        
  333.          }
  334.         emitsmoke 100 -30 0 frames 30 grow 4 size 75 rate 0 color 50 50 50 alpha 10 vel 0 2 0 rand 13 2 13
  335.         pause 7
  336.         set_operate "thingy1"."rfoot128" "null"
  337.     forever
  338. end_procedure
  339.  
  340. return
  341.  
  342. //************************************************************************************
  343. .human_mech_stomp_3
  344.  
  345. procedure "mech_sounds3"
  346.     label "thingy2"
  347.     do
  348.         wait_until distance_between "thingy2"."lfoot112" and 0 on ground 0 local to "thingy2"."lfoot112" > 10
  349.         wait_until distance_between "thingy2"."lfoot112" and 0 on ground 0 local to "thingy2"."lfoot112" < 10
  350.         setcurrentobject "thingy2"."lfoot112"
  351.         dosound trig_id 14 "current_object" "22 HANGER SCENE\22 Craft_Contact_Deck\Craft_Contact_Deck.1" ;"22 MECH_ROBOTS\22 Mech Walk 1\Mech1_Walk_Lt_Down"
  352.         ; trigon "current_object" 14
  353.         if distance_between    "thingy2" and "camera" < 10000
  354.          { 
  355.           judder time 5 yawmax 0.00003 pitchmax 0.00004        
  356.          }
  357.         emitsmoke -100 -30 0 frames 30 grow 4 size 75 rate 0 color 50 50 50 alpha 10 vel 0 2 0 rand 13 2 13
  358.         pause 7
  359.         set_operate "thingy2"."lfoot112" "null"
  360.  
  361.     
  362.         wait_until distance_between "thingy2"."rfoot128" and 0 on ground 0 local to "thingy2"."rfoot128" > 10
  363.         wait_until distance_between "thingy2"."rfoot128" and 0 on ground 0 local to "thingy2"."rfoot128" < 10
  364.         setcurrentobject "thingy2"."rfoot128"
  365.         dosound trig_id 15 "current_object" "22 HANGER SCENE\22 Craft_Contact_Deck\Craft_Contact_Deck.1"  ;"22 MECH_ROBOTS\22 Mech Walk 1\Mech1_Walk_Rt_Down"
  366.         ; trigon "current_object" 15
  367.         if distance_between    "thingy2" and "camera" < 10000
  368.          { 
  369.           judder time 5 yawmax 0.00003 pitchmax 0.00004        
  370.          }
  371.         emitsmoke 100 -30 0 frames 30 grow 4 size 75 rate 0 color 50 50 50 alpha 10 vel 0 2 0 rand 13 2 13
  372.         pause 7
  373.         set_operate "thingy2"."rfoot128" "null"
  374.     forever
  375. end_procedure
  376.  
  377. return
  378.  
  379. //************************************************************************************
  380. .human_mech_stomp_4
  381.  
  382. procedure "mech_sounds4"
  383.     label "thingy3"
  384.     do
  385.         wait_until distance_between "thingy3"."lfoot112" and 0 on ground 0 local to "thingy3"."lfoot112" > 10
  386.         wait_until distance_between "thingy3"."lfoot112" and 0 on ground 0 local to "thingy3"."lfoot112" < 10
  387.         setcurrentobject "thingy3"."lfoot112"
  388.         dosound trig_id 16 "current_object" "22 HANGER SCENE\22 Craft_Contact_Deck\Craft_Contact_Deck.1" ;"22 MECH_ROBOTS\22 Mech Walk 1\Mech1_Walk_Lt_Down"
  389.         ; trigon "current_object" 16
  390.         if distance_between    "thingy3" and "camera" < 10000
  391.          { 
  392.           judder time 5 yawmax 0.00003 pitchmax 0.00004        
  393.          }
  394.         emitsmoke -100 -30 0 frames 30 grow 4 size 75 rate 0 color 50 50 50 alpha 10 vel 0 2 0 rand 13 2 13
  395.         pause 7
  396.         set_operate "thingy3"."lfoot112" "null"
  397.  
  398.     
  399.         wait_until distance_between "thingy3"."rfoot128" and 0 on ground 0 local to "thingy3"."rfoot128" > 10
  400.         wait_until distance_between "thingy3"."rfoot128" and 0 on ground 0 local to "thingy3"."rfoot128" < 10
  401.         setcurrentobject "thingy3"."rfoot128"
  402.         dosound trig_id 17 "current_object" "22 HANGER SCENE\22 Craft_Contact_Deck\Craft_Contact_Deck.1"  ;"22 MECH_ROBOTS\22 Mech Walk 1\Mech1_Walk_Rt_Down"
  403.         ; trigon "current_object" 17
  404.         if distance_between    "thingy3" and "camera" < 10000
  405.          { 
  406.           judder time 5 yawmax 0.00003 pitchmax 0.00004        
  407.          }
  408.         emitsmoke 100 -30 0 frames 30 grow 4 size 75 rate 0 color 50 50 50 alpha 10 vel 0 2 0 rand 13 2 13
  409.         pause 7
  410.         set_operate "thingy3"."rfoot128" "null"
  411.     forever
  412. end_procedure
  413.  
  414. return
  415.  
  416. //************************************************************************************
  417.  
  418.  end //----- of emech_dummy's task
  419.  
  420.  
  421.  
  422.  
  423. //************************************************************************************
  424. //************************************************************************************
  425. //************************************************************************************
  426. //************************************************************************************
  427. //************************************************************************************
  428. //************************************************************************************
  429.  
  430.  
  431.  
  432. //-----------------------alien mechs
  433.  
  434. create "alien mech"
  435.  position 1 on ground 1
  436.  pointing_at 1 on ground 100
  437.  label "amech_dummy"
  438.  task
  439.  
  440. //-------- amech gosubs --------
  441. comment
  442.     gosub "alien_mech_stomp_1"
  443.     gosub "alien_mech_stomp_2"
  444.     gosub "alien_mech_stomp_3"
  445.     gosub "alien_mech_stomp_4"
  446.  
  447.     gosub "amech_power_up"
  448.     gosub "amech_stopped_to_walk"
  449.  
  450.     gosub "amech_left_180"
  451.     gosub "amech_right_180"
  452.     gosub "amech_left_90"
  453.     gosub "amech_right_90"
  454.     gosub "amech_left_60"
  455.     gosub "amech_right_60"
  456.     gosub "amech_left_30"
  457.     gosub "amech_right_30"
  458.  
  459.     gosub "amech_walk_4"
  460.     gosub "amech_walk_8" 
  461.     gosub "amech_walk_30"
  462.     gosub "amech_walk_60"
  463.  
  464.     gosub "amech_walk_shoot_1"
  465.     gosub "amech_walk_shoot_2"
  466. endcomment
  467. //-------- amech gosubs --------
  468.  
  469.  
  470.    wait_until flag 31 set
  471.    wait_until flag 31 clear
  472.  
  473.  
  474. .amech_left_180
  475.     gosub "amech_left_90"
  476.     gosub "amech_left_90"
  477. return
  478.  
  479. .amech_right_180
  480.     gosub "amech_right_90"
  481.     gosub "amech_right_90"
  482. return
  483.  
  484. .amech_left_90
  485.     gosub "amech_left_60"
  486.     gosub "amech_left_30"
  487. return
  488.  
  489. .amech_right_90
  490.     gosub "amech_right_60"
  491.     gosub "amech_right_30"
  492. return
  493.  
  494. .amech_left_60
  495.     gosub "amech_left_30"
  496.     gosub "amech_left_30"
  497. return
  498.  
  499. .amech_right_60
  500.     gosub "amech_right_30"
  501.     gosub "amech_right_30"
  502. return
  503.  
  504. .amech_left_30
  505.    playanim me 0             
  506.    rotate 0 0.3 0 frames 0
  507.    throttle 1 frames 232
  508.    rotate 0 0 0 frames 0
  509.    gosub "finish_anim"
  510. return
  511.  
  512. .amech_right_30
  513.    playanim me 0             
  514.    rotate 0 -0.3 0 frames 0
  515.    throttle 1 frames 232
  516.    rotate 0 0 0 frames 0
  517.    gosub "finish_anim"
  518. return
  519.  
  520. .amech_walk_4
  521.    playanim me 0 ;wait
  522.    throttle 1 frames 59 ;walk 4 + 1/2 paces
  523. return
  524.  
  525. .amech_walk_8
  526.    playanim me 0             
  527.    throttle 1 frames 232 ;walk 9 paces 
  528. return
  529.  
  530. .amech_walk_30
  531.    playanim me 0             
  532.    throttle 1 frames 929 ;walk 33 paces 
  533. return
  534.  
  535. .amech_walk_60
  536.    playanim me 0             
  537.    throttle 1 frames 1857 ;walk 65 paces 
  538. return
  539.  
  540. .amech_walk_shoot_1
  541.     playanim me 0             
  542.     fire_main
  543.     throttle 1 frames 10
  544.     fire_main
  545.     throttle 1 frames 10
  546.     fire_main
  547.     throttle 1 frames 38
  548. return
  549.  
  550. .amech_walk_no_shoot_1
  551.     playanim me 0             
  552.     throttle 1 frames 58
  553. return
  554.  
  555. .amech_walk_shoot_2
  556.     playanim me 0             
  557.     fire_main
  558.     throttle 1 frames 10
  559.     fire_main
  560.     throttle 1 frames 10
  561.     fire_main
  562.     throttle 1 frames 10
  563.     fire_main
  564.     throttle 1 frames 10
  565.     fire_main
  566.     throttle 1 frames 18
  567. return
  568.  
  569. .amech_walk_no_shoot_2
  570.     playanim me 0             
  571.     throttle 1 frames 58
  572. return
  573.  
  574. .amech_power_up
  575.    playanim me 1             
  576.    throttle 0 frames 63 
  577. return
  578.  
  579. .amech_stopped_to_walk
  580.    playanim me 3             
  581.    throttle 0 frames 59 
  582. ;   gosub "finish_anim"
  583. return
  584.  
  585. //************************************************************************************
  586. .alien_mech_stomp_1
  587.  
  588. procedure "amech_stemp_sounds1"
  589.     label "amech_stomp1"
  590.     do
  591.         pause 1
  592.         wait_until distance_between "amech_stomp1"."lfoot110" and 0 on ground 0 relative to "amech_stomp1"."lfoot110" > 70;76
  593.         wait_until distance_between "amech_stomp1"."lfoot110" and 0 on ground 0 relative to "amech_stomp1"."lfoot110" < 70;76
  594.         setcurrentobject "amech_stomp1"."lfoot110"        
  595.         dosound trig_id 18 "current_object" "22 MECH_ROBOTS\22 Mech Walk 1\Mech1_Walk_Lt_Down" ;group HUGE_STRUCTURES 
  596.         ; trigon "current_object" 18
  597.         if distance_between    "amech_stomp1" and "camera" < 10000
  598.          { 
  599.           judder time 5 yawmax 0.00003 pitchmax 0.00004        
  600.          }
  601.         emitsmoke 50 -50 0 frames 30 grow 4 size 75 rate 0 color 50 50 50 alpha 10 vel 0 2 0 rand 13 2 13
  602.         pause 7
  603.         set_operate "amech_stomp1"."lfoot110" "null"
  604.  
  605.  
  606.         wait_until distance_between "amech_stomp1"."rfoot127" and 0 on ground 0 relative to "amech_stomp1"."rfoot127" > 70;76
  607.         wait_until distance_between "amech_stomp1"."rfoot127" and 0 on ground 0 relative to "amech_stomp1"."rfoot127" < 70;76
  608.         setcurrentobject "amech_stomp1"."rfoot127"
  609.         dosound trig_id 19 "current_object" "22 MECH_ROBOTS\22 Mech Walk 1\Mech1_Walk_Lt_Down" ;group HUGE_STRUCTURES
  610.         ; trigon "current_object" 19
  611.         if distance_between    "amech_stomp1" and "camera" < 10000
  612.          { 
  613.           judder time 5 yawmax 0.00003 pitchmax 0.00004        
  614.          }
  615.         emitsmoke 100 -50 0 frames 30 grow 4 size 75 rate 0 color 50 50 50 alpha 10 vel 0 2 0 rand 13 2 13
  616.         pause 7
  617.         set_operate "amech_stomp1"."rfoot127" "null"
  618.         pause 1
  619.     forever
  620. end_procedure
  621.  
  622. return
  623.  
  624. //************************************************************************************
  625. .alien_mech_stomp_2
  626.  
  627. procedure "amech_stemp_sounds2"
  628.     label "amech_stomp2"
  629.     do
  630.         pause 1
  631.         wait_until distance_between "amech_stomp2"."lfoot110" and 0 on ground 0 relative to "amech_stomp2"."lfoot110" > 70;76
  632.         wait_until distance_between "amech_stomp2"."lfoot110" and 0 on ground 0 relative to "amech_stomp2"."lfoot110" < 70;76
  633.         setcurrentobject "amech_stomp2"."lfoot110"        
  634.         dosound trig_id 20 "current_object" "22 MECH_ROBOTS\22 Mech Walk 1\Mech1_Walk_Lt_Down" ;group HUGE_STRUCTURES 
  635.         ; trigon "current_object" 20
  636.         if distance_between    "amech_stomp2" and "camera" < 10000
  637.          { 
  638.           judder time 5 yawmax 0.00003 pitchmax 0.00004        
  639.          }
  640.         emitsmoke 50 -50 0 frames 30 grow 4 size 75 rate 0 color 50 50 50 alpha 10 vel 0 2 0 rand 13 2 13
  641.         pause 7
  642.         set_operate "amech_stomp2"."lfoot110" "null"
  643.  
  644.  
  645.         wait_until distance_between "amech_stomp2"."rfoot127" and 0 on ground 0 relative to "amech_stomp2"."rfoot127" > 70;76
  646.         wait_until distance_between "amech_stomp2"."rfoot127" and 0 on ground 0 relative to "amech_stomp2"."rfoot127" < 70;76
  647.         setcurrentobject "amech_stomp2"."rfoot127"
  648.         dosound trig_id 21 "current_object" "22 MECH_ROBOTS\22 Mech Walk 1\Mech1_Walk_Lt_Down" ;group HUGE_STRUCTURES
  649.         ; trigon "current_object" 21
  650.         if distance_between    "amech_stomp2" and "camera" < 10000
  651.          { 
  652.           judder time 5 yawmax 0.00003 pitchmax 0.00004        
  653.          }
  654.         emitsmoke 100 -50 0 frames 30 grow 4 size 75 rate 0 color 50 50 50 alpha 10 vel 0 2 0 rand 13 2 13
  655.         pause 7
  656.         set_operate "amech_stomp2"."rfoot127" "null"
  657.         pause 1
  658.     forever
  659. end_procedure
  660.  
  661. return
  662.  
  663. //************************************************************************************
  664. .alien_mech_stomp_3
  665.  
  666. procedure "amech_stemp_sounds3"
  667.     label "amech_stomp3"
  668.     do
  669.         pause 1
  670.         wait_until distance_between "amech_stomp3"."lfoot110" and 0 on ground 0 relative to "amech_stomp3"."lfoot110" > 70;76
  671.         wait_until distance_between "amech_stomp3"."lfoot110" and 0 on ground 0 relative to "amech_stomp3"."lfoot110" < 70;76
  672.         setcurrentobject "amech_stomp3"."lfoot110"        
  673.         dosound trig_id 22 "current_object" "22 MECH_ROBOTS\22 Mech Walk 1\Mech1_Walk_Lt_Down" ;group HUGE_STRUCTURES 
  674.         ; trigon "current_object" 22
  675.         if distance_between    "amech_stomp3" and "camera" < 10000
  676.          { 
  677.           judder time 5 yawmax 0.00003 pitchmax 0.00004        
  678.          }
  679.         emitsmoke 50 -50 0 frames 30 grow 4 size 75 rate 0 color 50 50 50 alpha 10 vel 0 2 0 rand 13 2 13
  680.         pause 7
  681.         set_operate "amech_stomp3"."lfoot110" "null"
  682.  
  683.  
  684.         wait_until distance_between "amech_stomp3"."rfoot127" and 0 on ground 0 relative to "amech_stomp3"."rfoot127" > 70;76
  685.         wait_until distance_between "amech_stomp3"."rfoot127" and 0 on ground 0 relative to "amech_stomp3"."rfoot127" < 70;76
  686.         setcurrentobject "amech_stomp3"."rfoot127"
  687.         dosound trig_id 23 "current_object" "22 MECH_ROBOTS\22 Mech Walk 1\Mech1_Walk_Lt_Down" ;group HUGE_STRUCTURES
  688.         ; trigon "current_object" 23
  689.         if distance_between    "amech_stomp3" and "camera" < 10000
  690.          { 
  691.           judder time 5 yawmax 0.00003 pitchmax 0.00004        
  692.          }
  693.         emitsmoke 100 -50 0 frames 30 grow 4 size 75 rate 0 color 50 50 50 alpha 10 vel 0 2 0 rand 13 2 13
  694.         pause 7
  695.         set_operate "amech_stomp3"."rfoot127" "null"
  696.         pause 1
  697.     forever
  698. end_procedure
  699.  
  700. return
  701.  
  702. //************************************************************************************
  703. .alien_mech_stomp_4
  704.  
  705. procedure "amech_stemp_sounds4"
  706.     label "amech_stomp4"
  707.     do
  708.         pause 1
  709.         wait_until distance_between "amech_stomp4"."lfoot110" and 0 on ground 0 relative to "amech_stomp4"."lfoot110" > 70;76
  710.         wait_until distance_between "amech_stomp4"."lfoot110" and 0 on ground 0 relative to "amech_stomp4"."lfoot110" < 70;76
  711.         setcurrentobject "amech_stomp4"."lfoot110"        
  712.         dosound trig_id 24 "current_object" "22 MECH_ROBOTS\22 Mech Walk 1\Mech1_Walk_Lt_Down" ;group HUGE_STRUCTURES 
  713.         ; trigon "current_object" 24
  714.         if distance_between    "amech_stomp4" and "camera" < 10000
  715.          { 
  716.           judder time 5 yawmax 0.00003 pitchmax 0.00004        
  717.          }
  718.         emitsmoke 50 -50 0 frames 30 grow 4 size 75 rate 0 color 50 50 50 alpha 10 vel 0 2 0 rand 13 2 13
  719.         pause 7
  720.         set_operate "amech_stomp4"."lfoot110" "null"
  721.  
  722.  
  723.         wait_until distance_between "amech_stomp4"."rfoot127" and 0 on ground 0 relative to "amech_stomp4"."rfoot127" > 70;76
  724.         wait_until distance_between "amech_stomp4"."rfoot127" and 0 on ground 0 relative to "amech_stomp4"."rfoot127" < 70;76
  725.         setcurrentobject "amech_stomp4"."rfoot127"
  726.         dosound trig_id 25 "current_object" "22 MECH_ROBOTS\22 Mech Walk 1\Mech1_Walk_Lt_Down" ;group HUGE_STRUCTURES
  727.         ; trigon "current_object" 25
  728.         if distance_between    "amech_stomp4" and "camera" < 10000
  729.          { 
  730.           judder time 5 yawmax 0.00003 pitchmax 0.00004        
  731.          }
  732.         emitsmoke 100 -50 0 frames 30 grow 4 size 75 rate 0 color 50 50 50 alpha 10 vel 0 2 0 rand 13 2 13
  733.         pause 7
  734.         set_operate "amech_stomp4"."rfoot127" "null"
  735.         pause 1
  736.     forever
  737. end_procedure
  738.  
  739. return
  740.  
  741. //************************************************************************************
  742.  
  743.  end //-------- of amech_dummy's task
  744.  
  745.  
  746.  
  747.  
  748. //************************************************************************************
  749. //************************************************************************************
  750. //************************************************************************************
  751. //************************************************************************************
  752. //************************************************************************************
  753. //************************************************************************************
  754. //------------------------------------
  755. create "hog"
  756.     position 1350 on ground 1145
  757.     label "hog_dummy"
  758.         task
  759. //-------- hog gosubs --------
  760. comment
  761.     gosub "hog_walk"
  762. endcomment
  763. //-------- hog gosubs --------
  764.  
  765.    wait_until flag 31 set
  766.    wait_until flag 31 clear
  767.                  
  768. .hog_walk
  769.     playanim me 0             
  770.     throttle 0.15 frames 144 
  771. return
  772.  
  773. .hog_jog
  774.     playanim me 5             
  775.     throttle 0.8 frames 144 
  776. return
  777.  
  778. //-----------------------------------------------------
  779.   
  780.  end //-------- of hog_dummy's task
  781.  
  782.  
  783.  
  784. //************************************************************************************
  785. //************************************************************************************
  786. //************************************************************************************
  787. //************************************************************************************
  788. //************************************************************************************
  789. //************************************************************************************
  790. //------------------------------------
  791. create "terauman"
  792.     position 1350 on ground 1145
  793.     label "terauman_dummy"
  794.         task
  795. //-------- hog gosubs --------
  796. comment
  797.     gosub "terry_talk"
  798. endcomment
  799. //-------- hog gosubs --------
  800.  
  801.    wait_until flag 31 set
  802.    wait_until flag 31 clear
  803.                  
  804. .terry_talk
  805.     playanim me 1             
  806.     throttle 0 frames 320 
  807. return
  808.  
  809. .terry_walk
  810.     playanim me 0             
  811.     throttle 0.41 frames 144 
  812. return
  813.  
  814. .terry_shuffle
  815.     playanim me 4             
  816.     throttle 0.11 frames 34
  817. return
  818.  
  819. .terry_run
  820.     playanim me 3             
  821.     throttle 1 frames 17
  822. return
  823.  
  824. //-----------------------------------------------------
  825.   
  826.  end //-------- of terauman_dummy's task
  827.  
  828. //************************************************************************************
  829. //************************************************************************************
  830. //************************************************************************************
  831. //************************************************************************************
  832. //************************************************************************************
  833. //************************************************************************************
  834.            
  835. //------------------------------------
  836. create "human bomb"
  837.     position 1350 on ground 1145
  838.     label "bomb_dummy"
  839.         task
  840. //-------- bomb gosubs --------
  841. comment
  842.     gosub "bomb_count"
  843. endcomment
  844. //-------- bomb gosubs --------
  845.  
  846.    wait_until flag 31 set
  847.    wait_until flag 31 clear
  848.                  
  849. .bomb_count
  850.     playanim me 0             
  851.     throttle 0.1 frames 60 
  852. return
  853.  
  854. //-----------------------------------------------------
  855.   
  856.  end //-------- of bomb_dummy's task
  857.  
  858. //************************************************************************************
  859. //************************************************************************************
  860. //************************************************************************************
  861. //************************************************************************************
  862. //************************************************************************************
  863.  
  864. create "gi"
  865.  position 1350 on ground 1145
  866.  label "gi_dummy"
  867.  task
  868.  
  869. //-------- gi gosubs --------
  870. comment
  871.  
  872.     gosub "gi_stomp_1"
  873.     gosub "gi_stomp_2"
  874.  
  875.     gosub "gi_run_1"
  876.     gosub "gi_run_2"
  877.     gosub "gi_run_3"
  878.     gosub "gi_run_rotate_left_90"
  879.     gosub "gi_run_rotate_right_90"
  880.     gosub "gi_run_rotate_left_60"
  881.     gosub "gi_run_rotate_right_60"
  882.     gosub "gi_run_rotate_left_30"
  883.     gosub "gi_run_rotate_right_30"
  884.  
  885.     gosub "gi_run_shoot_1"
  886.     gosub "gi_kneel"
  887.     gosub "gi_kneel_look"
  888.  
  889.     gosub "gi_walk_1"
  890.     gosub "gi_walk_2"
  891.     gosub "gi_walk_3"
  892.     gosub "gi_walk_4"
  893.     gosub "gi_walk_rotate_left_90"
  894.     gosub "gi_walk_rotate_right_90"
  895.     gosub "gi_walk_rotate_left_60"
  896.     gosub "gi_walk_rotate_right_60"
  897.     gosub "gi_walk_rotate_left_30"
  898.     gosub "gi_walk_rotate_right_30"
  899.  
  900.     gosub "gi_casual_walk_1"
  901.     gosub "gi_casual_walk_2"
  902.     gosub "gi_casual_walk_3"
  903.     gosub "gi_casual_walk_rotate_left_90"
  904.     gosub "gi_casual_walk_rotate_right_90"
  905.     gosub "gi_casual_walk_rotate_left_60"
  906.     gosub "gi_casual_walk_rotate_right_60"
  907.     gosub "gi_casual_walk_rotate_left_30"
  908.     gosub "gi_casual_walk_rotate_right_30"
  909.  
  910.     gosub "gi_kicking_dust"    // idly kicks dust
  911.     gosub "gi_lightup" // lights up ciggy
  912.  
  913.     gosub "gi_death_forwards"
  914.     gosub "gi_death_backwards"
  915.     gosub "gi_tenshun" // stand to attention (on duty)
  916.     gosub "gi_a_pose"
  917.     gosub "gi_tenlook" // looks over left shoulder then shakes his head
  918.  
  919.     gosub "gi_aim"
  920.     gosub "gi_fire"
  921.                     
  922. endcomment
  923. //-------- gi gosubs --------
  924.  
  925.    wait_until flag 31 set
  926.    wait_until flag 31 clear
  927.  
  928. .gi_run_finish_anim
  929.     do                                            
  930.         throttle 1 frames 1                    
  931.     until "current_object" finished animation  
  932.     rotate 0 0 0 frames 0
  933.     throttle 0 frames 0
  934. return
  935.  
  936. .gi_casual_walk_finish_anim
  937.     do                                            
  938.         throttle 0.32 frames 1                    
  939.     until "current_object" finished animation  
  940.     rotate 0 0 0 frames 0
  941.     throttle 0 frames 0
  942. return
  943.  
  944. .gi_walk_finish_anim
  945.     do                                            
  946.         throttle 0.38 frames 1                    
  947.     until "current_object" finished animation  
  948.     rotate 0 0 0 frames 0
  949.     throttle 0 frames 0
  950. return
  951.  
  952. //---------------
  953. .gi_walk_1
  954.     playanim me 0
  955.     throttle 0.38 frames 36
  956. return
  957.  
  958. .gi_walk_2
  959.     playanim me 0
  960.     throttle 0.38 frames 72
  961. return
  962.  
  963. .gi_walk_3
  964.     playanim me 0
  965.     throttle 0.38 frames 144
  966. return
  967.  
  968. .gi_walk_4
  969.     playanim me 0
  970.     throttle 0.38 frames 288
  971. return
  972.  
  973. .gi_walk_rotate_left_90
  974.     gosub "gi_walk_rotate_left_60"
  975.     gosub "gi_walk_rotate_left_30"
  976. return
  977.  
  978. .gi_walk_rotate_right_90
  979.     gosub "gi_walk_rotate_right_60"
  980.     gosub "gi_walk_rotate_right_30"
  981. return
  982.  
  983. .gi_walk_rotate_left_60
  984.     gosub "gi_walk_rotate_left_30"
  985.     gosub "gi_walk_rotate_left_30"
  986. return
  987.  
  988. .gi_walk_rotate_right_60
  989.     gosub "gi_walk_rotate_right_30"
  990.     gosub "gi_walk_rotate_right_30"
  991. return
  992.  
  993. .gi_walk_rotate_left_30
  994.    playanim me 0             
  995.    rotate 0 0.03 0 frames 0
  996.    throttle 0.38 frames 88
  997.    rotate 0 0 0 frames 0
  998.    gosub "gi_walk_finish_anim"
  999. return
  1000.  
  1001. .gi_walk_rotate_right_30
  1002.    playanim me 0             
  1003.    rotate 0 -0.03 0 frames 0  ;-0.05
  1004.    throttle 0.38 frames 88 ;172
  1005.    rotate 0 0 0 frames 0
  1006.    gosub "gi_walk_finish_anim"
  1007. return
  1008. //---------------
  1009.  
  1010.  
  1011. //---------------
  1012. .gi_run_1
  1013.     playanim me 3             
  1014.     throttle 1 frames 23 
  1015. return
  1016.  
  1017. .gi_run_2
  1018.     playanim me 3             
  1019.     throttle 1 frames 45 
  1020. return
  1021.  
  1022. .gi_run_3
  1023.     playanim me 3             
  1024.     throttle 1 frames 89 
  1025. return
  1026.  
  1027. .gi_run_rotate_left_90
  1028.     gosub "gi_run_rotate_left_60"
  1029.     gosub "gi_run_rotate_left_30"
  1030. return
  1031.  
  1032. .gi_run_rotate_right_90
  1033.     gosub "gi_run_rotate_right_60"
  1034.     gosub "gi_run_rotate_right_30"
  1035. return
  1036.  
  1037. .gi_run_rotate_left_60
  1038.     gosub "gi_run_rotate_left_30"
  1039.     gosub "gi_run_rotate_left_30"
  1040. return
  1041.  
  1042. .gi_run_rotate_right_60
  1043.     gosub "gi_run_rotate_right_30"
  1044.     gosub "gi_run_rotate_right_30"
  1045. return
  1046.  
  1047. .gi_run_rotate_left_30
  1048.    playanim me 3             
  1049.    rotate 0 0.03 0 frames 0     ;0.05
  1050.    throttle 1 frames 88
  1051.    rotate 0 0 0 frames 0
  1052.    gosub "gi_run_finish_anim"
  1053. ;  do
  1054. ;    rotate 0 0.15 0 frames 0
  1055. ;    throttle 1 frames 4
  1056. ;  for 44 loops
  1057. return
  1058.  
  1059. .gi_run_rotate_right_30
  1060.    playanim me 3             
  1061.    rotate 0 -0.03 0 frames 0
  1062.    throttle 1 frames 88 ;172
  1063.    rotate 0 0 0 frames 0
  1064.    gosub "gi_run_finish_anim"
  1065. ;  do
  1066. ;    rotate 0 -0.15 0 frames 0
  1067. ;    throttle 1 frames 4
  1068. ;  for 44 loops
  1069. return
  1070. //---------------
  1071.  
  1072.  
  1073. .gi_run_shoot_1
  1074.     fire_main
  1075.     playanim me 3
  1076.     throttle 1 frames 10
  1077.     fire_main
  1078.     throttle 1 frames 10
  1079.     fire_main
  1080.     throttle 1 frames 10
  1081.     fire_main
  1082.     throttle 1 frames 14
  1083. return
  1084.  
  1085. .gi_kneel
  1086.     playanim me 16
  1087.     throttle 1 frames 11
  1088.     playanim me 17
  1089.     throttle 0 frames 24
  1090. return
  1091.  
  1092. .gi_kneel_look
  1093.     throttle 0 frames 1
  1094.     playanim me 15 frames 180 
  1095.     do                                            
  1096.         throttle 0 frames 1                    
  1097.     until "current_object" finished animation  
  1098. return
  1099.  
  1100. .gi_death_forwards
  1101.     playanim me 5
  1102. return
  1103.  
  1104. .gi_death_backwards
  1105.     playanim me 4
  1106. return
  1107.  
  1108. .gi_tenshun
  1109.     putanim me 8 1 
  1110. return
  1111.  
  1112. .gi_a_pose
  1113.     playanim me 9
  1114. return
  1115.  
  1116. .gi_tenlook
  1117.     playanim me 11
  1118. return
  1119.  
  1120. .gi_lightup
  1121.     playanim me 12
  1122. return
  1123.  
  1124. .gi_march
  1125.     playanim me 13
  1126.     throttle 0.9 frames 24
  1127. return
  1128.  
  1129. .gi_kicking_dust
  1130.     playanim me 18
  1131. return
  1132.  
  1133. .gi_aim
  1134.     playanim me 6
  1135.     throttle 0 frames 16
  1136. return
  1137.  
  1138. .gi_fire
  1139.     playanim me 1
  1140.     throttle 0 frames 4
  1141.     fire_main
  1142.     throttle 0 frames 4
  1143.     fire_main
  1144.     throttle 0 frames 4
  1145.     fire_main
  1146. return
  1147.  
  1148. //-------------------------
  1149. .gi_shuffle_1
  1150.     playanim me 25
  1151.     throttle 0.15 frames 70
  1152. return
  1153. //-------------------------
  1154.  
  1155. //-------------------------
  1156. .gi_sneak
  1157.     playanim me 24
  1158.     throttle 0.1 frames 70
  1159. return
  1160. //-------------------------
  1161.  
  1162. //-------------------------
  1163. .gi_nu_run
  1164.     playanim me 28             
  1165.     throttle 1 frames 18 
  1166. return
  1167. //-------------------------
  1168.  
  1169.  
  1170. //---------------
  1171. .gi_casual_walk_1
  1172.     playanim me 14
  1173.     throttle 0.32 frames 70
  1174. return
  1175.  
  1176. .gi_casual_walk_2
  1177.     playanim me 14
  1178.     throttle 0.32 frames 140
  1179. return
  1180.  
  1181. .gi_casual_walk_3
  1182.     playanim me 14
  1183.     throttle 0.32 frames 280
  1184. return
  1185.  
  1186. .gi_casual_walk_rotate_left_90
  1187.     gosub "gi_casual_walk_rotate_left_60"
  1188.     gosub "gi_casual_walk_rotate_left_30"
  1189. return
  1190.  
  1191. .gi_casual_walk_rotate_right_90
  1192.     gosub "gi_casual_walk_rotate_right_60"
  1193.     gosub "gi_casual_walk_rotate_right_30"
  1194. return
  1195.  
  1196. .gi_casual_walk_rotate_left_60
  1197.     gosub "gi_casual_walk_rotate_left_30"
  1198.     gosub "gi_casual_walk_rotate_left_30"
  1199. return
  1200.  
  1201. .gi_casual_walk_rotate_right_60
  1202.     gosub "gi_casual_walk_rotate_right_30"
  1203.     gosub "gi_casual_walk_rotate_right_30"
  1204. return
  1205.  
  1206. .gi_casual_walk_rotate_left_30
  1207.    playanim me 14             
  1208.    rotate 0 0.03 0 frames 0  ;0.1
  1209.    throttle 0.32 frames 140
  1210.    rotate 0 0 0 frames 0
  1211.    gosub "gi_casual_walk_finish_anim"
  1212. return
  1213.  
  1214. .gi_casual_walk_rotate_right_30
  1215.    playanim me 14             
  1216.    rotate 0 -0.03 0 frames 0
  1217.    throttle 0.32 frames 140
  1218.    rotate 0 0 0 frames 0
  1219.    gosub "gi_casual_walk_finish_anim"
  1220. return
  1221. //---------------
  1222.  
  1223. //************************************************************************************
  1224. .gi_stomp_1
  1225.  
  1226. procedure "gi_sounds_1"
  1227.  
  1228.     ;referenceobject "current_object"
  1229.     label "gi1_reference_object"
  1230.     do
  1231.         wait_until distance_between "gi1_reference_object"."LFOOT68" and 0 on ground 0 local to "gi1_reference_object"."LFOOT68" > 5
  1232.         wait_until distance_between "gi1_reference_object"."LFOOT68" and 0 on ground 0 local to "gi1_reference_object"."LFOOT68" < 5
  1233.     
  1234.         setcurrentobject "gi1_reference_object"."LFOOT68"
  1235.         emitsmoke 0 -10 0 frames 2 grow 1 size 1 rate 0 color 50 50 50 alpha 10 vel 0 0.2 0 rand 0.4 0.4 0.4
  1236.         pause 4
  1237.         set_operate "gi1_reference_object"."LFOOT68" "null"
  1238.     
  1239.         wait_until distance_between "gi1_reference_object"."RFOOT615" and 0 on ground 0 local to "gi1_reference_object"."RFOOT615" > 5
  1240.         wait_until distance_between "gi1_reference_object"."RFOOT615" and 0 on ground 0 local to "gi1_reference_object"."RFOOT615" < 5
  1241.     
  1242.         setcurrentobject "gi1_reference_object"."RFOOT615"
  1243.         emitsmoke 0 -10 0 frames 2 grow 1 size 1 rate 0 color 50 50 50 alpha 10 vel 0 0.2 0 rand 0.4 0.4 0.4
  1244.         pause 4
  1245.         set_operate "gi1_reference_object"."RFOOT615" "null"
  1246.     forever
  1247.  
  1248. end_procedure
  1249.  
  1250. return
  1251.  
  1252. //************************************************************************************
  1253. .gi_stomp_2
  1254.  
  1255. procedure "gi_sounds_2"
  1256.  
  1257.     ;referenceobject "current_object"
  1258.     label "gi2_reference_object"
  1259.     do
  1260.         wait_until distance_between "gi2_reference_object"."LFOOT68" and 0 on ground 0 local to "gi2_reference_object"."LFOOT68" > 5
  1261.         wait_until distance_between "gi2_reference_object"."LFOOT68" and 0 on ground 0 local to "gi2_reference_object"."LFOOT68" < 5
  1262.     
  1263.         setcurrentobject "gi2_reference_object"."LFOOT68"
  1264.         emitsmoke 0 -10 0 frames 2 grow 1 size 1 rate 0 color 50 50 50 alpha 10 vel 0 0.2 0 rand 0.4 0.4 0.4
  1265.         pause 4
  1266.         set_operate "gi2_reference_object"."LFOOT68" "null"
  1267.     
  1268.         wait_until distance_between "gi2_reference_object"."RFOOT615" and 0 on ground 0 local to "gi2_reference_object"."RFOOT615" > 5
  1269.         wait_until distance_between "gi2_reference_object"."RFOOT615" and 0 on ground 0 local to "gi2_reference_object"."RFOOT615" < 5
  1270.     
  1271.         setcurrentobject "gi2_reference_object"."RFOOT615"
  1272.         emitsmoke 0 -10 0 frames 2 grow 1 size 1 rate 0 color 50 50 50 alpha 10 vel 0 0.2 0 rand 0.4 0.4 0.4
  1273.         pause 4
  1274.         set_operate "gi2_reference_object"."RFOOT615" "null"
  1275.     forever
  1276.  
  1277. end_procedure
  1278.  
  1279. return
  1280.  
  1281. //************************************************************************************
  1282.  
  1283.  end //------- end of GI's task
  1284.  
  1285.  
  1286.  
  1287.  
  1288. //************************************************************************************
  1289. //************************************************************************************
  1290. //************************************************************************************
  1291. //************************************************************************************
  1292. //************************************************************************************
  1293. //************************************************************************************
  1294.  
  1295.  
  1296.  
  1297.  
  1298. create "grunt"
  1299.  position 1350 on ground 1145
  1300.  label "grunt_dummy"
  1301.  task
  1302.  
  1303. //-------- grunt gosubs --------
  1304. comment
  1305.     gosub "grunt_stomp_1"
  1306.     gosub "grunt_stomp_2"
  1307.  
  1308.     gosub "grunt_walk_1"
  1309.     gosub "grunt_walk_2"
  1310.     gosub "grunt_walk_3"
  1311.     gosub "grunt_walk_rotate_left_90"
  1312.     gosub "grunt_walk_rotate_right_90"
  1313.     gosub "grunt_walk_rotate_left_60"
  1314.     gosub "grunt_walk_rotate_right_60"
  1315.     gosub "grunt_walk_rotate_left_30"
  1316.     gosub "grunt_walk_rotate_right_30"
  1317.  
  1318.     gosub "grunt_run_1"
  1319.     gosub "grunt_run_2"
  1320.     gosub "grunt_run_3"
  1321.     gosub "grunt_run_4"
  1322.     gosub "grunt_run_rotate_left_90"
  1323.     gosub "grunt_run_rotate_right_90"
  1324.     gosub "grunt_run_rotate_left_60"
  1325.     gosub "grunt_run_rotate_right_60"
  1326.     gosub "grunt_run_rotate_left_30"
  1327.     gosub "grunt_run_rotate_right_30"
  1328.  
  1329.     gosub "grunt_aim"
  1330.     gosub "grunt_fire"
  1331.     gosub "grunt_death_forwards"
  1332.     gosub "grunt_death_backwards"
  1333.     gosub "grunt_run_fire_1"
  1334.     gosub "grunt_kneel"
  1335.     gosub "grunt_kneel_dive"
  1336.     gosub "grunt_kneel_look"
  1337.  
  1338.     gosub "grunt_idle_a"
  1339.  
  1340.     gosub "grunt_casual_walk_1"
  1341.     gosub "grunt_casual_walk_2"
  1342.     gosub "grunt_casual_walk_3"
  1343.     gosub "grunt_casual_walk_rotate_left_90"
  1344.     gosub "grunt_casual_walk_rotate_right_90"
  1345.     gosub "grunt_casual_walk_rotate_left_60"
  1346.     gosub "grunt_casual_walk_rotate_right_60"
  1347.     gosub "grunt_casual_walk_rotate_left_30"
  1348.     gosub "grunt_casual_walk_rotate_right_30"
  1349.  
  1350.     gosub "grunt_sprint"
  1351.  
  1352.  
  1353. endcomment
  1354. //-------- grunt gosubs --------
  1355.  
  1356.    wait_until flag 31 set
  1357.    wait_until flag 31 clear
  1358.  
  1359. .grunt_walk_finish_anim
  1360.     do                                            
  1361.         throttle 0.3 frames 1                    
  1362.     until "current_object" finished animation  
  1363.     rotate 0 0 0 frames 0
  1364.     throttle 0 frames 0
  1365. return
  1366.  
  1367.  
  1368. //----------------
  1369. .grunt_walk_1
  1370.     playanim me 0             
  1371.     throttle 0.3 frames 36 
  1372. return
  1373.  
  1374. .grunt_walk_2
  1375.     playanim me 0             
  1376.     throttle 0.3 frames 72 
  1377. return
  1378.  
  1379. .grunt_walk_3
  1380.     playanim me 0             
  1381.     throttle 0.3 frames 144 
  1382. return
  1383.  
  1384. .grunt_walk_rotate_left_90
  1385.     gosub "grunt_walk_rotate_left_60"
  1386.     gosub "grunt_walk_rotate_left_30"
  1387. return
  1388.  
  1389. .grunt_walk_rotate_right_90
  1390.     gosub "grunt_walk_rotate_right_60"
  1391.     gosub "grunt_walk_rotate_right_30"
  1392. return
  1393.  
  1394. .grunt_walk_rotate_left_60
  1395.     gosub "grunt_walk_rotate_left_30"
  1396.     gosub "grunt_walk_rotate_left_30"
  1397. return
  1398.  
  1399. .grunt_walk_rotate_right_60
  1400.     gosub "grunt_walk_rotate_right_30"
  1401.     gosub "grunt_walk_rotate_right_30"
  1402. return
  1403.  
  1404. .grunt_walk_rotate_left_30
  1405.    playanim me 0             
  1406.    rotate 0 0.05 0 frames 0
  1407.    throttle 0.3 frames 88
  1408.    rotate 0 0 0 frames 0
  1409.    gosub "grunt_walk_finish_anim"
  1410. return
  1411.  
  1412. .grunt_walk_rotate_right_30
  1413.    playanim me 0             
  1414.    rotate 0 -0.05 0 frames 0
  1415.    throttle 0.3 frames 88
  1416.    rotate 0 0 0 frames 0
  1417.    gosub "grunt_walk_finish_anim"
  1418. return
  1419. //----------------
  1420.  
  1421.  
  1422. //----------------
  1423. .grunt_run_1
  1424.     playanim me 3
  1425.     throttle 1 frames 25 
  1426. return
  1427.  
  1428. .grunt_run_2
  1429.     playanim me 3             
  1430.     throttle 1 frames 48 
  1431. return
  1432.  
  1433. .grunt_run_3
  1434.     playanim me 3             
  1435.     throttle 1 frames 96 
  1436. return
  1437.  
  1438. .grunt_run_4
  1439.     playanim me 3             
  1440.     throttle 1 frames 195 
  1441. return
  1442.  
  1443. .grunt_run_rotate_left_90
  1444.     gosub "grunt_run_rotate_left_60"
  1445.     gosub "grunt_run_rotate_left_30"
  1446. return
  1447.  
  1448. .grunt_run_rotate_right_90
  1449.     gosub "grunt_run_rotate_right_60"
  1450.     gosub "grunt_run_rotate_right_30"
  1451. return
  1452.  
  1453. .grunt_run_rotate_left_60
  1454.     gosub "grunt_run_rotate_left_30"
  1455.     gosub "grunt_run_rotate_left_30"
  1456. return
  1457.  
  1458. .grunt_run_rotate_right_60
  1459.     gosub "grunt_run_rotate_right_30"
  1460.     gosub "grunt_run_rotate_right_30"
  1461. return
  1462.  
  1463. .grunt_run_rotate_left_30
  1464.    playanim me 3             
  1465.    rotate 0 0.05 0 frames 0
  1466.    throttle 1 frames 88
  1467.    rotate 0 0 0 frames 0
  1468.    gosub "finish_anim"
  1469. ;  do
  1470. ;    rotate 0 1 0 frames 0
  1471. ;    throttle 1 frames 2
  1472. ;  for 44 loops
  1473. return
  1474.  
  1475. .grunt_run_rotate_right_30
  1476.    playanim me 3             
  1477.    rotate 0 -0.05 0 frames 0
  1478.    throttle 1 frames 88
  1479.    rotate 0 0 0 frames 0
  1480.    gosub "finish_anim"
  1481. ;  do
  1482. ;    rotate 0 -1 0 frames 0
  1483. ;    throttle 1 frames 2
  1484. ;  for 44 loops
  1485. return
  1486. //----------------
  1487.  
  1488.  
  1489. //----------------
  1490. .grunt_aim
  1491.     playanim me 6
  1492.     throttle 0 frames 24
  1493. return
  1494.  
  1495. ;.grunt_fire
  1496. ;    playanim me 1
  1497. ;    throttle 0 frames 8
  1498. ;    fire_main
  1499. ;    throttle 0 frames 8
  1500. ;    fire_main
  1501. ;return
  1502.  
  1503. .grunt_fire
  1504.     playanim me 1
  1505.     throttle 0 frames 4
  1506.     fire_main
  1507.     throttle 0 frames 4
  1508.     fire_main
  1509.     throttle 0 frames 4
  1510.     fire_main
  1511.     throttle 0 frames 4
  1512.     fire_main
  1513. return
  1514.  
  1515. .grunt_death_forwards
  1516.     playanim me 5
  1517.     throttle 0 frames 36
  1518. return
  1519.  
  1520. .grunt_death_backwards
  1521.     playanim me 4
  1522.     throttle 0 frames 36
  1523. return
  1524.  
  1525. .grunt_run_fire_1
  1526.     playanim me 2
  1527.     throttle 1 frames 9
  1528.     fire_main
  1529.     throttle 1 frames 9
  1530.     fire_main
  1531.     throttle 1 frames 9
  1532.     fire_main
  1533.     throttle 1 frames 8
  1534.     fire_main
  1535.     throttle 1 frames 1
  1536. return
  1537.  
  1538. .grunt_kneel
  1539.     gosub "finish_anim"
  1540.     playanim me 8
  1541.     throttle 1 frames 16
  1542.     throttle 0 frames 20 ;36
  1543. return
  1544.  
  1545. .grunt_kneel_dive
  1546.     playanim me 9
  1547.     throttle 0 frames 50
  1548. return
  1549.  
  1550. .grunt_kneel_look
  1551.     throttle 0 frames 1
  1552.     playanim me 10 frames 180 
  1553.     playanim me 10 frames 180 
  1554. return
  1555.  
  1556. .grunt_idle_a
  1557.     playanim me 12 frames 250 
  1558. return
  1559.  
  1560. //----------------
  1561. .grunt_casual_walk_1
  1562.     playanim me 11             
  1563.     throttle 0.3 frames 50 
  1564. return
  1565.  
  1566. .grunt_casual_walk_2
  1567.     playanim me 11             
  1568.     throttle 0.3 frames 100 
  1569. return
  1570.  
  1571. .grunt_casual_walk_3
  1572.     playanim me 11             
  1573.     throttle 0.3 frames 300 
  1574. return
  1575.  
  1576. .grunt_casual_walk_rotate_left_90
  1577.     gosub "grunt_casual_walk_rotate_left_60"
  1578.     gosub "grunt_casual_walk_rotate_left_30"
  1579. return
  1580.  
  1581. .grunt_casual_walk_rotate_right_90
  1582.     gosub "grunt_casual_walk_rotate_right_60"
  1583.     gosub "grunt_casual_walk_rotate_right_30"
  1584. return
  1585.  
  1586. .grunt_casual_walk_rotate_left_60
  1587.     gosub "grunt_casual_walk_rotate_left_30"
  1588.     gosub "grunt_casual_walk_rotate_left_30"
  1589. return
  1590.  
  1591. .grunt_casual_walk_rotate_right_60
  1592.     gosub "grunt_casual_walk_rotate_right_30"
  1593.     gosub "grunt_casual_walk_rotate_right_30"
  1594. return
  1595.  
  1596. .grunt_casual_walk_rotate_left_30
  1597.    playanim me 11             
  1598.    rotate 0 0.05 0 frames 0
  1599.    throttle 0.3 frames 88
  1600.    rotate 0 0 0 frames 0
  1601.    gosub "grunt_walk_finish_anim"
  1602. return
  1603.  
  1604. .grunt_casual_walk_rotate_right_30
  1605.    playanim me 11             
  1606.    rotate 0 -0.05 0 frames 0
  1607.    throttle 0.3 frames 88
  1608.    rotate 0 0 0 frames 0
  1609.    gosub "grunt_walk_finish_anim"
  1610. return
  1611. //----------------
  1612. .grunt_shuffle_1
  1613.     playanim me 27             
  1614.     throttle 0.25 frames 39 
  1615. return
  1616.  
  1617. //----------------
  1618. .grunt_sprint
  1619.     playanim me 28             
  1620.     throttle 1 frames 19 
  1621. return
  1622.  
  1623. //************************************************************************************
  1624. .grunt_stomp_1
  1625.  
  1626. procedure "grunt_sounds_1"
  1627.  
  1628.     ;referenceobject "current_object"
  1629.     label "g_reference_object"
  1630.     do
  1631.         wait_until distance_between "g_reference_object"."lfoot18" and 0 on ground 0 local to "g_reference_object"."lfoot18" > 10
  1632.         wait_until distance_between "g_reference_object"."lfoot18" and 0 on ground 0 local to "g_reference_object"."lfoot18" < 10
  1633.     
  1634.         setcurrentobject "g_reference_object"."lfoot18"
  1635.         emitsmoke 0 0 32 frames 2 grow 1 size 0.2 rate 0 color 50 50 50 alpha 10 vel 0 0.1 0 rand 0.1 0.1 0.1
  1636.         pause 7
  1637.         set_operate "g_reference_object"."lfoot18" "null"
  1638.     
  1639.         wait_until distance_between "g_reference_object"."rfoot116" and 0 on ground 0 local to "g_reference_object"."rfoot116" > 10
  1640.         wait_until distance_between "g_reference_object"."rfoot116" and 0 on ground 0 local to "g_reference_object"."rfoot116" < 10
  1641.     
  1642.         setcurrentobject "g_reference_object"."rfoot116"
  1643.         emitsmoke 0 0 20 frames 2 grow 1 size 0.1 rate 0 color 50 50 50 alpha 10 vel 0 0.1 0 rand 0.1 0.1 0.1
  1644.         pause 7
  1645.         set_operate "g_reference_object"."rfoot116" "null"
  1646.     forever
  1647.  
  1648. end_procedure
  1649.  
  1650. return
  1651.  
  1652. //************************************************************************************
  1653. .grunt_stomp_2
  1654.  
  1655. procedure "grunt_sounds_2"
  1656.  
  1657.     label "g2_reference_object"
  1658.     do
  1659.         wait_until distance_between "g2_reference_object"."lfoot18" and 0 on ground 0 local to "g2_reference_object"."lfoot18" > 10
  1660.         wait_until distance_between "g2_reference_object"."lfoot18" and 0 on ground 0 local to "g2_reference_object"."lfoot18" < 10
  1661.     
  1662.         setcurrentobject "g2_reference_object"."lfoot18"
  1663.         emitsmoke 0 -10 0 frames 2 grow 1 size 1 rate 0 color 50 50 50 alpha 10 vel 0 0.2 0 rand 0.4 0.4 0.4
  1664.         pause 7
  1665.         set_operate "g2_reference_object"."lfoot18" "null"
  1666.     
  1667.         wait_until distance_between "g2_reference_object"."rfoot116" and 0 on ground 0 local to "g2_reference_object"."rfoot116" > 10
  1668.         wait_until distance_between "g2_reference_object"."rfoot116" and 0 on ground 0 local to "g2_reference_object"."rfoot116" < 10
  1669.     
  1670.         setcurrentobject "g2_reference_object"."rfoot116"
  1671.         emitsmoke 0 -10 0 frames 2 grow 1 size 1 rate 0 color 50 50 50 alpha 10 vel 0 0.2 0 rand 0.4 0.4 0.4
  1672.         pause 7
  1673.         set_operate "g2_reference_object"."rfoot116" "null"
  1674.     forever
  1675.  
  1676. end_procedure
  1677.  
  1678. return
  1679.  
  1680. //************************************************************************************
  1681.  
  1682.  end //------- end of grunt's task
  1683.  
  1684.  
  1685.  
  1686.  
  1687. //************************************************************************************
  1688. //************************************************************************************
  1689. //************************************************************************************
  1690. //************************************************************************************
  1691. //************************************************************************************
  1692. //************************************************************************************
  1693.  
  1694.  
  1695.  
  1696. kill "emech_dummy"
  1697. kill "amech_dummy"
  1698. kill "gi_dummy"
  1699. kill "grunt_dummy"
  1700. kill "hog_dummy"
  1701. kill "terauman_dummy"
  1702.  
  1703.